#include "mainwindow.h"
#include "ui_mainwindow.h"

/* 图标 */
#include <QIcon>
/* 图片 */
#include <QPixmap>
#include <QDebug>
/* 对话框 */
#include <QMessageBox>

/* QJSON. */
#include <QJsonObject>
#include <QJsonDocument>

/* 文件 */
#include <QFile>

/* 考勤界面头文件 */
#include "kaoqinsys.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    /* 固定窗口尺寸 */
    setFixedSize(380, 480);

    /* 修改标题 */
    setWindowTitle("智能考勤系统");

    /* 修改软件图标 */
    QIcon icon(":/Icon/blackCat.png");
    setWindowIcon(icon);

    /* 设置头像 */
    /* 设置图片 */
    QPixmap img(":/Imgs/111.jpeg");
    ui->headImg->setPixmap(img.scaled(ui->headImg->width(), ui->headImg->height()));


    /* 信号和槽 */
    connect(ui->loginBtn, &QPushButton::clicked, this, &MainWindow::handleLoginSlot);
    connect(ui->regisBtn, &QPushButton::clicked, this, &MainWindow::handleRegisSlot);
}

/* 处理注册 槽函数 */
void MainWindow::handleRegisSlot()
{
    qDebug() << "handleRegisSlot" << endl;
}

/* 处理登录 槽函数. */
void MainWindow::handleLoginSlot()
{
    qDebug() << "handleLoginSlot" << endl;

    QString account = ui->accountInfo->text();
    QString passwd = ui->passwdInfo->text();

    qDebug() << "account:" << account;
    qDebug() << "passwd:" << passwd;

#if 0
    /* 伪代码 */
    if (account == "admin" && passwd == "admin")
    {
        QMessageBox::information(this, "登录", "登录成功");
    }
    else
    {
        QMessageBox::warning(this, "登录", "登录失败");
    }
#else

    /* 打开文件 */
    QString filePath = "D:\\KaoQinSystem\\GitTest\\KaoQinSystem\\KaoQinSystem\\config.json";
    QFile file(filePath);

    if (!file.open(QIODevice::ReadOnly))
    {
        QMessageBox::warning(this, "打开文件", "文件打开失败");
        return;
    }
    /* 文件打开成功 */
    QByteArray jsonData = file.readAll();
    /* 关闭文件 */
    file.close();

    /* 将数据解析成json类型的对象 */
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData);

    QJsonObject jsonObj = jsonDoc.object();

    QString userName = jsonObj["account"].toString();
    QString pwd = jsonObj["passwd"].toString();

    qDebug() << "userName:" << userName << endl;
    qDebug() << "pwd:" << pwd << endl;

    if (account == userName && passwd == pwd)
    {
        QMessageBox::information(this, "登录", "登录成功");

        /* 创建一个新的页面 */
        KaoQinSys * newInterFace = new KaoQinSys(this);

        /* 让新界面出现 */
        newInterFace->show();

        /* 让当前页面隐藏 */
        this->hide();
    }
    else
    {
        QMessageBox::warning(this, "登录", "登录失败");
    }
#endif
}

MainWindow::~MainWindow()
{
    delete ui;
}
